package com.example.smartpark.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.example.smartpark.dto.ParkingRecordDTO;
import com.example.smartpark.dto.ParkingRecordQueryDTO;

/**
 * 停车记录服务接口
 */
public interface ParkingRecordService {

    /**
     * 分页查询停车记录
     *
     * @param queryDTO 查询条件
     * @return 停车记录分页结果
     */
    IPage<ParkingRecordDTO> getParkingRecordPage(ParkingRecordQueryDTO queryDTO);

    /**
     * 查询停车记录详情
     *
     * @param id 停车记录ID
     * @return 停车记录详情
     */
    ParkingRecordDTO getParkingRecordById(Long id);

    /**
     * 创建停车记录（入场）
     *
     * @param parkingRecordDTO 停车记录DTO
     * @return 创建的停车记录
     */
    ParkingRecordDTO createParkingRecord(ParkingRecordDTO parkingRecordDTO);

    /**
     * 更新停车记录（出场）
     *
     * @param id 停车记录ID
     * @param parkingRecordDTO 停车记录DTO
     * @return 更新后的停车记录
     */
    ParkingRecordDTO updateParkingRecord(Long id, ParkingRecordDTO parkingRecordDTO);

    /**
     * 计算停车费用
     *
     * @param id 停车记录ID
     * @return 计算费用后的停车记录
     */
    ParkingRecordDTO calculateParkingFee(Long id);

    /**
     * 更新支付状态
     *
     * @param id 停车记录ID
     * @param paymentId 支付ID
     * @return 更新后的停车记录
     */
    ParkingRecordDTO updatePaymentStatus(Long id, Integer paymentId);
} 